#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int LuckyPack(vector<int>& pack,int n,int pos,int sum,int multi)
{
    //依次搭配，去掉重复，例如11339依次搭配有 113 113 119 113 113 119 311 313 319 311 313 319 339 339 ...
    //如果不去重会浪费时间 去重后只有 113 133 119 139 339
    int count=0;
    for(int i=pos;i<n;i++)
    {
        sum+=pack[i];
        multi*=pack[i];
        if(sum>multi)
        {
            count += 1+LuckyPack(pack, n, i+1, sum, multi);
        }
        else if(pack[i]==1)//第一个为1时，直接跳转到下一个数
        {
            count+=LuckyPack(pack, n, i+1, sum, multi);
        }
        else //当不幸运时，跳出循环，回退，把之前加上的减掉 乘上的除掉
            break;
        sum-=pack[i];
        multi/=pack[i];
        
        while(i<n-1&&pack[i]==pack[i+1])//排序后去掉重复搭配,下标后移
        {
            i++;
        }
    }
    return count;   
}

int main()
{
    int n;
    cin >>n;
    vector<int> pack(n);
    for(auto& e:pack)
    {
        cin >> e;
    }
    sort(pack.begin(),pack.end());
    cout <<LuckyPack(pack, n, 0, 0, 1);
    return 0;
}